Technical Field
This disclosure relates generally to processors, and, more specifically, to graphics processing units that implement predication.
Description of the Related Art
Graphics processing units (GPUs) typically operate on large amounts of graphics data in parallel using multiple execution pipelines or shaders. As modern GPUs are becoming more and more programmable, with less computation done in fixed-function hardware, GPUs are now performing more complicated tasks than ever before. These tasks may include tasks associated with graphics processing as well as tasks that are unrelated to graphics applications through the use of frameworks, such as OpenCL®, to offload workloads from central processing units (CPUs) to GPUs. As GPU complexity has increased, the complexity of their instruction set architectures (ISA) has increased.
Many GPU ISAs now support instructions that affect control flow based on evaluated conditions such as branch instructions. Branch instructions, however, are difficult to implement on a per-instance basis in a single instruction, multiple data (SIMD) machine such as a GPU. GPUs may alternatively use predication as a way to facilitate management of control flow on a per-instance basis.